package com.iplant.pdm.service.basicenum.fpc;

import com.iplant.base.po.enums.BaseEnum;

/**
 * 标准类型
 *
 * @author YouWang·Peng
 * 2023-7-27 13:59:28
 */
public enum FPCStandardType implements BaseEnum {
    /**
     * 文本
     */
    Text(0, "文本"),
    /**
     * 单选
     */
    Combo(1, "单选"),
    /**
     * a＜ n ＜ b
     */
    Range(2, "a＜ n ＜ b"),
    /**
     * a≤ n ≤ b
     */
    RangeEQ(3, "a≤ n ≤ b"),
    /**
     * a≤ n ＜ b
     */
    RangeLTE(4, "a≤ n ＜ b"),
    /**
     * a＜ n ≤ b
     */
    RangeGTE(5, "a＜ n ≤ b"),
    /**
     * n ＜ b
     */
    LT(6, "n ＜ b"),
    /**
     * n ＞ b
     */
    GT(7, "n ＞ b"),
    /**
     * n ≤ b
     */
    LTE(8, "n ≤ b"),
    /**
     * n ≥ b
     */
    GTE(9, "n ≥ b"),
    /**
     * n = b
     */
    EQ(10, "n = b"),
    /**
     * 多选
     */
    Check(11, "多选"),
    /**
     * 不合格原因 单选且自己填 不显示Comment
     */
    BadReason(12, "不合格原因   单选且自己填 不显示Comment"),
    /**
     * 多数字输入
     */
    ArrayNumber(13, "多数字输入"),
    /**
     * 多文本输入
     */
    ArrayText(14, "多文本输入"),
    /**
     * 无标准值
     */
    ArrayNull(15, "无标准值"),
    /**
     * 数字
     */
    Number(16, "数字");

    private int value;
    private String label;
    private String remark;

    FPCStandardType(int value, String label) {
        this.value = value;
        this.label = label;
    }

    FPCStandardType(int value, String label, String remark) {
        this.value = value;
        this.label = label;
        this.remark = remark;
    }

    /**
     * 通过 value 的数值获取枚举实例
     */
    public static FPCStandardType getEnumType(int val) {
        for (FPCStandardType type : FPCStandardType.values()) {
            if (type.getValue() == val) {
                return type;
            }
        }
        return Text;
    }

    /**
     * 通过 value 的数值获取枚举实例
     */
    public static FPCStandardType getEnumType(String val) {
        for (FPCStandardType type : FPCStandardType.values()) {
            if (type.getLabel().equals(val)) {
                return type;
            }
        }
        return Text;
    }

    /**
     * 通过 value 的数值获取枚举实例
     */
    public static int getEnumValue(String val) {
        int wResult = -1;
        for (FPCStandardType type : FPCStandardType.values()) {
            if (type.getLabel().equals(val)) {
                return type.getValue();
            }
        }
        return wResult;
    }

    @Override
    public int getValue() {
        return value;
    }

    @Override
    public void setValue(int value) {
        this.value = value;
    }

    @Override
    public String getLabel() {
        return label;
    }

    @Override
    public void setLabel(String label) {
        this.label = label;
    }

    @Override
    public String getRemark() {
        return remark;
    }

    @Override
    public void setRemark(String remark) {
        this.remark = remark;
    }
}